# -*- coding: utf-8 -*-
"""
@Time ： 2021/11/30 20:43
@Auth ： Mr. William 1052949192
@Company ：特斯汀学院 @testingedu.com.cn
@Function ：比如通过关键字名字，反向获取函数，运行关键字代码
"""
# 把用例用关键字驱动跑一遍
from keywords.webkeys import Web

cases = [
    ['', '', '打开浏览器', 'openbrowser', '', '', '', '', ''],
    ['', '', '进入登录页面', 'geturl', 'http://testingedu.com.cn:8000/index.php/Home/user/login.html', '', '', '', ''],
    ['', '', '输入用户名', 'input', '//*[@id="username"]', '13800138006', '', '', ''],
    ['', '', '输入密码', 'input', '//*[@id="password"]', '1234561', '', '', ''],
    ['', '', '输入验证码', 'input', '//*[@id="verify_code"]', '11111', '', '', ''],
    ['', '', '点击登录', 'click', '//*[@id="loginform"]/div/div[6]/a', '', '', '', ''],
    ['', '', '等待', 'sleep', '1', '', '', '', ''],
    ['', '', '获取提示', 'gettext', '//*[@id="layui-layer1"]/div[2]', '', '', '', ''],
]

# # 通常方法
# web = Web()
# for c in cases:
#     kw = c[3]
#     if kw == 'openbrowser':
#         web.openbrowser(kw,c[4])
#     elif kw == 'input':
#         web.input(kw,c[4],c[5])

# 反射
# 通过getattr可以拿到对象里面和kw字符串一样名字的函数或者属性
web = Web()
# 反射需要注意（你需要按关键字要求传参，少传（键值对参数除外）或者多传参都会报错）
# func = getattr(web,'openbrowser')
# func('a','b')

for c in cases:
    kw = c[3]
    func = getattr(web,kw)
    # 截取参数
    params = c[4:]
    # 去掉空的
    params = params[0:params.index('')]
    print(params)
    func(*params)

